home *** CD-ROM | disk | FTP | other *** search
/ The Amiga Classic Collection / The Amiga Classic Collection - Disc 1.iso / Education / ED92-AmateurRadio3.DMS / ED92-AmateurRadio3.adf / DOS-LOCATOR / DPLC < prev    next >
Text File  |  1990-03-04  |  3KB  |  103 lines

  1.    GOTO DPLC
  2. SELECTMENU:
  3.    CLS 
  4.    PRINT:PRINT:PRINT "                          * SELECT PROGRAM *":PRINT:PRINT
  5.    PRINT "       ....1...DISTANCE & POINTS FROM LOCATORS FOR CONTESTS.....1.... "
  6.    PRINT "       ....2...CONVERT NGR TO LOCATOR & LAT/LONG................2.... "
  7.    PRINT "       ....3...DISTANCE FROM LAT/LONG TO LAT/LONG...............3.... "
  8.    PRINT "       ....4...CONVERT OLD & NEW LOCATORS TO LAT/LONG...........4.... "
  9.    PRINT "       ....5....................................................5...."
  10.    PRINT "       ....6....................................................6.... "
  11.    PRINT "       ....7....................................................7.... "
  12.    PRINT "       ....8....................................................8.... "
  13.    PRINT "       ....9....................................................9.... "
  14. 0  PRINT:PRINT
  15.    R$=INKEY$
  16.    IF R$ = "1" THEN GOTO DPLC
  17.    IF R$ = "2" THEN LOAD "CNGRLLL",R 
  18.    IF R$ = "3" THEN LOAD "DLLLL",R
  19.    IF R$ = "4" THEN LOAD "CONLLL",R
  20.    IF R$ <> "" GOTO SELECTMENU
  21.    SLEEP
  22.    GOTO 0
  23.    
  24. DPLC:
  25.    PI=3.1415926559#
  26.    CLS
  27.    GOSUB 13
  28.    PRINT #4, :PRINT #4,"         *DISTANCE & POINTS FROM LOCATORS FOR CONTESTS JAN90*"
  29.    PRINT #4,
  30. 1  INPUT "HOME LOCATOR";Q$:Q$=UCASE$(Q$)
  31.    PRINT #4,
  32.    GOSUB 11
  33.    IF F>.5 GOTO 1
  34.    E1=E:N1=N
  35.    CN=1:TD=0:TP=0:DX=0
  36.    BD=0:BC=0:OD=0:OC=0
  37.    PN=1
  38. 2  PP=0:PD=0:PC=0
  39.    PRINT #4,:PRINT #4," PAGE";PN;"           ENTER SUMMARY (/) - MENU (*) ":PRINT #4,
  40. 3  PRINT #4,"   LOCATER/DX FOR QSO";CN;
  41.    M=1:INPUT Q$:Q$=UCASE$(Q$):IF Q$=""GOTO 3
  42.    IF Q$="/"GOTO 10
  43.    IF Q$="*"GOTO SELECTMENU
  44.    IF LEFT$(Q$,1)<>"-" GOTO 4
  45.    M=-1:Q$=MID$(Q$,2): IF Q$="" GOTO 7
  46. 4  F=0:FOR J=1 TO LEN(Q$):T$=MID$(Q$,J,1)
  47.    IF (T$<"0"OR T$> "9") AND T$<>"." THEN F=1
  48.    NEXT J
  49.    IF F>.5 GOTO 5
  50.    DX=VAL(Q$):IF DX<>0 GOTO 7
  51.    PT=0:GOTO 8
  52. 5  GOSUB 11:IF F<.5 GOTO 6
  53.    PRINT "BAD INPUT": GOTO 3
  54. 6  CO=SIN(N1)*SIN(N)+COS(N1)*COS(N)*COS(E1-E)
  55.    DX=ATN(ABS(SQR(1-CO*CO)/CO)):IF CO<0 THEN DX=PI-DX
  56.    DX=6371.291#*DX
  57. 7  PT=M*(1+2*INT(ABS(DX-1)/50)):DX=M*INT(DX)
  58. 8  PRINT #4,DX;"  KM",PT;"  POINTS":PRINT
  59.    TD=TD+DX:TP=TP+PT
  60.    PD=PD+DX:PP=PP+PT: PC=PC+M
  61.    CN=CN+M:IF DX>=0 GOTO 9
  62.    DX=-DX:IF DX<BD GOTO 3
  63.    PRINT #4,"      BEST DX CANCELLED ":BC=OC: BD=OD:GOTO 3
  64. 9  IF DX <=BD GOTO 3
  65.    PRINT #4,"     * NEW BEST DX *":PRINT
  66.    OD=BD: OC=BC:BD=DX:BC=CN-M:GOTO 3
  67. 10 T=CN-1:PRINT #4,:PRINT #4," TOTALS SO FAR:"
  68.    PRINT #4,T;" CONTACTS":IF T<1 THEN T=1
  69.    PRINT #4,TD;"KM",INT(TD/T);" KM/QSO"
  70.    PRINT #4,TP;" POINTS",INT(TP*100/T)/100;" POINTS/QSO"
  71.    T=PC:PRINT #4,:PRINT #4,"TOTALS FOR PAGE";PN
  72.    PRINT #4,T;"CONTACTS":IF T<1 THEN T=1
  73.    PRINT #4,PD;"KM",INT(PD/T);"KM/QSO"
  74.    PRINT #4,PP;"POINTS",INT(PP*100/T)/100;"POINTS/QSO"
  75.    PRINT #4,:PRINT #4,"BEST DX";BD;"KM, QSO NO";BC 
  76.    PRINT #4,:INPUT "START A NEW PAGE";Q$:Q$=UCASE$(Q$)
  77.    IF LEFT$(Q$,1)<>"Y" GOTO 3
  78.    PN=PN+1:GOTO 2
  79. 11 F=1:IF LEN(Q$)<>6 THEN RETURN
  80.    T=1:GOSUB 12
  81.    E=N+N: IF F>.5 THEN RETURN
  82.    F=1:T=2:GOSUB 12
  83.    RETURN
  84. 12 N=ASC(MID$(Q$,T,1))-ASC("A")
  85.    IF N<0 OR N>17 THEN RETURN
  86.    T$=MID$(Q$,T+2,1)
  87.    IF T$<"0"OR T$>"9" THEN RETURN
  88.    N=N*10+ASC(T$)-ASC("0")
  89.    T$=MID$(Q$,T+4,1)
  90.    IF T$<"A" OR T$> "X"THEN RETURN
  91.    N=N*24+ASC(T$)-ASC("A")
  92.    N=N-2160+.5
  93.    N=N*PI/4320
  94.    F=0:RETURN
  95. 13 PRINT
  96.    INPUT"OUTPUT TO Printer or Screen (P/S)", P$
  97.    IF UCASE$(P$)<>"P"THEN 14
  98.    OPEN"LPT1:" FOR OUTPUT AS #4 
  99.    RETURN
  100. 14 OPEN "SCRN:" FOR OUTPUT AS #4:RETURN
  101.  
  102.  
  103.